package com.le.biz;

import com.le.bean.Board;
import com.le.dao.BoardDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class BoardBizImpl implements BoardBiz{
    @Autowired
    private BoardDao boardDao;

    @Override
    public Map<Integer, List<Board>> findAllBoard() {
        List<Board> list = this.boardDao.selectAllBoard();  // 这是一个复杂的多表联接查询，下面的操作是对数据进行包装

        Map<Integer, List<Board>> map = new HashMap<>();
        if (list == null || list.size() <= 0){
            return map;
        }
        for (Board board: list){
            // 取父板块编号
            Integer parentid = board.getParentid();
            if (map.containsKey(parentid)){
                /**
                 * 包含了父板块的parentid 的板块存入到 map中
                 */
                List<Board> sonList = map.get(parentid);
                sonList.add(board);
            } else {
                // 剩余其他板块存入到map中
                List<Board> sonList = new ArrayList<>();
                sonList.add(board);
                map.put(parentid, sonList); // 此时， 父版块 -> 子版块列表
            }
        }
        return map;
    }

    @Override
    public Board findBoardById(Integer boardid) {
        return this.boardDao.selectBoardById(boardid);
    }
}
